package com.mrlv.email.entity;

import lombok.Data;
import org.springframework.mail.javamail.JavaMailSender;

import javax.mail.internet.MimeMessage;
import java.io.File;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author lvshiyu
 * @description: TODO
 * @date 2022年04月11日 12:03
 */
@Data
public class EmailMessage implements Serializable {

    /**
     * 接收方
     */
    private String[] tos;

    /**
     * 标题
     */
    private String subject;

    /**
     * 内容
     */
    public String content;

    /**
     * 附件
     */
    public Map<String, File> attachments;

    /**
     * 内嵌图片
     */
    private Map<String, File> inlineFiles;

    /**
     * 是否是纯文本邮件
     */
    private Boolean isSimple = true;

    /**
     * 添加附件资源
     * @param name 附件名
     * @param file 附件资源
     * @return
     */
    public EmailMessage addAttachment(String name, File file) {
        if (this.attachments == null) {
            this.attachments = new HashMap<>();
        }
        this.attachments.put(name, file);
        return this;
    }

    /**
     * 添加内联资源，一个id对应一个资源，最终通过id来找到该资源
     * @param id 对应 html 上标识 的cid
     * @param file 文件资源
     * @return
     */
    public EmailMessage addInlineFile(String id, File file) {
        if (this.inlineFiles == null) {
            this.inlineFiles = new HashMap<>();
        }
        this.inlineFiles.put(id, file);
        return this;
    }
}
